#ifndef UNIVERSETEST_H_
#define UNIVERSETEST_H_

#include "BodyMesh.h"
#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>

#include "../include/physicsworks.h"
#include "../src/math/math.h"

using physicsworks::Universe;
using physicsworks::instanceUniverse;
using physicsworks::destroyUniverse;
using physicsworks::World;
using physicsworks::SpatialPartitioningType;
using physicsworks::NullSpatialPartitioningConfig;
using physicsworks::Body;
using physicsworks::real;

class UniverseTest : public CppUnit::TestFixture
{
	CPPUNIT_TEST_SUITE(UniverseTest);
	CPPUNIT_TEST(testInstancingUniverse);
	CPPUNIT_TEST(testStartStopInstancingObjects);
	CPPUNIT_TEST(testAddingRemovingWorlds);
	CPPUNIT_TEST(testGetWorldsList);
	CPPUNIT_TEST_SUITE_END();
	
private:
	Universe* universe;
	BodyMesh* mesh;

public:

	void setUp();
		
	void testInstancingUniverse() {
		CPPUNIT_ASSERT( universe != 0 );
	}
	
	void testStartStopInstancingObjects();
	void testAddingRemovingWorlds();
	void testGetWorldsList();
	
	void tearDown();
};


#endif /*UNIVERSETEST_H_*/
